scale: Fix mark positioning at the left/top edge
authorMatthias Clasen <mclasen@redhat.com>
Thu, 5 May 2016 19:17:56 +0000 (15:17 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 5 May 2016 19:17:56 +0000 (15:17 -0400)
We were failing to take the widget allocation.x/y into account
when deciding whether we need to push in the mark.

https://bugzilla.gnome.org/show_bug.cgi?id=765922

gtk/gtkscale.c

index a9a6fe27996cb169b07aa4170e3688c4b9ef0860..8b22cc0bd5dcec54584a45ba3a7928b98fb0c2d1 100644 (file)
@@ -480,9 +480,13 @@ gtk_scale_allocate_marks (GtkCssGadget        *gadget,
 
   orientation = gtk_orientable_get_orientation (GTK_ORIENTABLE (scale));
   _gtk_range_get_stop_positions (GTK_RANGE (scale), &marks);
-  min_pos_before = min_pos_after = 0;
   gtk_widget_get_allocation (widget, &widget_alloc);
 
+  if (orientation == GTK_ORIENTATION_HORIZONTAL)
+    min_pos_before = min_pos_after = widget_alloc.x;
+  else
+    min_pos_before = min_pos_after = widget_alloc.y;
+
   for (m = priv->marks, i = 0; m; m = m->next, i++)
     {
       GtkScaleMark *mark = m->data;